home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Comm / AmiTCP30b2.lha / src / examples / serv / in.example.c next >
C/C++ Source or Header  |  1994-04-13  |  2KB  |  60 lines

  1. RCS_ID_C="$Id: in.example.c,v 1.2 1994/04/12 22:27:07 jraja Exp $";
  2. /*
  3.  * in.example.c - an example server to be started by inetd
  4.  *
  5.  * Author: jraja <Jarno.Rajahalme@hut.fi>
  6.  *
  7.  * Copyright © 1994 AmiTCP/IP Group, <amitcp-group@hut.fi>
  8.  *                  Helsinki University of Technology, Finland.
  9.  *                  All rights reserved.
  10.  *
  11.  * Created      : Tue Apr 12 22:11:23 1994 jraja
  12.  * Last modified: Wed Apr 13 01:26:29 1994 jraja
  13.  */
  14.  
  15. #include <stdio.h>
  16. #include <stdlib.h>
  17. #include <unistd.h>
  18. #include <fcntl.h>
  19. #include <errno.h>
  20. #include <string.h>
  21. #include <clib/netlib_protos.h>
  22.  
  23. void
  24. main(int argc, char **argv)
  25. {
  26.   char buffer[81];
  27.   char *cp, *cr;
  28.  
  29.   /*
  30.    * If init_inet_daemon() fails, we continue and work in normal stdio mode,
  31.    * i.e., the stdio is not bound to a socket. In this case, none of the
  32.    * bsdsocket.library functions can be used on the files 0, 1 or 2. This
  33.    * doesn't matter, since we aren't going to use any of them anyway.
  34.    */
  35.   int sock = init_inet_daemon();
  36.   if (sock >= 0)
  37.     set_socket_stdio(sock);
  38.   /* else use normal stdio */
  39.  
  40.   /*
  41.    * Simple loop that gets one line, and then puts it out in reverse.
  42.    */
  43.   while (fgets(buffer, sizeof(buffer), stdin) != NULL) {
  44.     /*
  45.      * Print the text in reverse
  46.      */
  47.     for (cp = buffer + strlen(buffer) - 1, cr = NULL; cp >= buffer; cp--) {
  48.       if (*cp == '\n' || *cp == '\r')
  49.     cr = cp;
  50.       else
  51.     fputc(*cp, stdout);
  52.     }
  53.     /*
  54.      * print end of line if it was found
  55.      */
  56.     if (cr != NULL)
  57.       fputs(cr, stdout);
  58.   }
  59. }
  60.